function fitting = FitXePhaseNoise(~, signal, varargin)
    p = inputParser;
    p.addParameter('upperBoundary', 10.0, @(x) isnumeric(x) && x>0);
    p.addParameter('lowerBoundary', 0.5, @(x) isnumeric(x) && x>0);
    p.parse(varargin{:});
    
    spect129 = signal.getNodeData(1);
    spect131 = signal.getNodeData(2);
    fList129= spect129.x; psValue129 = spect129.y/pi*180;
    fList131= spect131.x; psValue131 = spect131.y/pi*180;
    enbw129 = signal.getNodeENBW(1);
    enbw131 =  signal.getNodeENBW(2);
    
    psd129 = psValue129/sqrt(enbw129);
    psd131 = psValue131/sqrt(enbw131);
    
    fitting.data129.fList = fList129;
    fitting.data129.psd = psd129;
    fitting.data131.fList = fList131;
    fitting.data131.psd = psd131;
    
    %%
    idx129 = fList129<=p.Results.upperBoundary & fList129>=p.Results.lowerBoundary;
    idx131 = fList131<=p.Results.upperBoundary & fList131>=p.Results.lowerBoundary;
    fitting.noisebackground129 = mean(psd129(idx129));
    fitting.noisebackground131 = mean(psd131(idx131));
    fitting.noisebackgroundRange = [p.Results.lowerBoundary, p.Results.upperBoundary];
end

